Twitter Annontations, a Meta-tweet Framework
As I wait for a project to build, I’d like to unravel some thoughts regarding something of which I’m starting to catch wind. A new feature being implemented into Twitter which helps solve many interesting challenges inherent to how Twitter currently works all the way down to the 140 character limit. This new feature is called Annotations and, as its name suggests, will allow the public to make notes and comments regarding specific tweets and publish them along with the original tweet. Many of you, myself included, have still to find the real utility in Twitter as anything more than a novelty broadcasting toy. (Let me finish!) I’ve played with the service off and on for some time (@placer14) with varying levels of satisfaction throughout and will leave my opinions for another post. In light of my past experiences, I have an “Oooohhhyeaahhhh” feeling about Twitter Annotations.
A lot of the expected conversation has started and has lit a dwindling fire in the Semantic Web domain. Discussions between myself and a good friend,
Dr. Oge Marques, have led us down the path that Semantic Web is a novelty not likely to gain traction quickly enough. Imagining the various implications this feature always ends up with brighter future for the Semantic Web and I seriously can’t wait!
Some thoughts from other prominent figures on the technology:
[H]appy to see Twitter experimenting with metadata, but is concerned about the potential impact. “I think it’s important to have standards of some kind so that services don’t start adding things that change the nature of what Twitter is,” he said. “For example, you don’t want to have tweets where the message can’t be understood without seeing the annotations.”
- Rohit Khare, former director of CommerceNet Labs (source)
I had considered this specific issue and wonder if there’s a way to provide a well-known key/value pair which allows any Twitter client to handle any unknown namespace gracefully with some self-reflection. Maybe a ‘publicURL’ key which allows a client to point the user at a service which knows the namespace and can do something more useful with it? Like so:
{
'annotations': {
'unknownNamespace': {
'attr1': 'val1',
'attr2': 'val2',
...
'publicURL': 'http://publicly.available.url'
}
}
}
Any client can then do some nice things with this namespace despite knowing nothing about it. The URL could act as a RESTful resource where the namespace key/values can be posted to get a nicely formatted addendum to the tweet. Or be simply a [more info] link after the tweet. Nick Halstead skirts this idea a little bit…
Because of the size of the data you can put in the annotations, I think people will come up with links to offsite resources. Seesmic is building their own platform for Windows to support plug-ins, but this reaches much further, but this lets Twitter clients augment a tweet with other services. [Say] you were Stocktweets, you could attach a link in the namespace that’s in stocktweets, Seesmic could follow that link back to Stocktweets and ask it how to render it. So you could put a chart and any other associated information. It’s like FBML [Facebook Markup Language], the ability to embed applications inside the Twitter clients. Maybe threaded conversations. A game of Scrabble where the link points at a currently rendered scrabble board, so other people could look at the board and join in playing it. Annotations and webhooks would allow gaming to start happening on Twitter."
- Nick Halstead, Tweetmeme (source)
There is a short list of potential (and obvious) use cases which might be implemented with Annotations, but I have a more interesting use case which I’d love to see. Threaded discussions and commenting systems aside, let’s look at a Twitter-based forum system. Users would participate in an ongoing (and tracked conversation) which is completely run within the Twitter cloud. I imagine the implementation would be pretty simple. Would something like that be useful to anyone?
Either way, I’m thoroughly excited about the development and can’t wait to see how it will turn out.